package 炫彩基类

import (
	common "gitee.com/go_888/xcgui/xcgui/common"
	"unsafe"

	xcc "gitee.com/go_888/xcgui/xcgui/xcc"
)

// XFont_Create 字体_创建, 创建炫彩字体. 当字体句柄与元素关联后, 会自动释放. 返回炫彩字体句柄.
//
// ff:字体_创建
// size:字体大小
func X字体_创建(字体大小 int32) int {
	r, _, _ := xFont_Create.Call(uintptr(字体大小))
	return int(r)
}

// XFont_CreateEx 字体_创建扩展. 创建炫彩字体. 返回炫彩字体句柄.
//
//
//
// ff:字体_创建EX
// pName:字体名称
// size:字体大小
// style:字体样式
func X字体_创建EX(字体名称 string, 字体大小 int32, 字体样式 xcc.X字体样式) int {
	r, _, _ := xFont_CreateEx.Call(common.X文本到uintptr(字体名称), uintptr(字体大小), uintptr(字体样式))
	return int(r)
}

// XFont_CreateLOGFONTW 字体_创建从LOGFONT. 创建炫彩字体. 返回炫彩字体句柄.
//
// ff:字体_创建并按字体属性
// pFontInfo:字体属性
func X字体_创建并按字体属性(字体属性 *X结构_字体属性) int {
	r, _, _ := xFont_CreateFromLOGFONTW.Call(uintptr(unsafe.Pointer(字体属性)))
	return int(r)
}

// XFont_CreateFromHFONT 字体_创建从HFONT. 创建炫彩字体从现有HFONT字体. 返回炫彩字体句柄.
//
// ff:字体_创建并按字体句柄
// hFont:字体句柄
func X字体_创建并按字体句柄(字体句柄 uintptr) int {
	r, _, _ := xFont_CreateFromHFONT.Call(字体句柄)
	return int(r)
}

// XFont_CreateFromFont 字体_创建从Font. 创建炫彩字体从GDI+字体. 返回字体句柄.
//
// ff:字体_创建并按GDI字体指针
// pFont:GDI字体指针
func X字体_创建并按GDI字体指针(GDI字体指针 uintptr) int {
	r, _, _ := xFont_CreateFromFont.Call(GDI字体指针)
	return int(r)
}

// XFont_CreateFromFile 字体_创建从文件. 创建字体从文件. 返回炫彩字体句柄.
//
//
//
// ff:字体_创建从文件
// pFontFile:字体文件名
// size:字体大小
// style:字体样式
func X字体_创建从文件(字体文件名 string, 字体大小 int32, 字体样式 xcc.X字体样式) int {
	r, _, _ := xFont_CreateFromFile.Call(common.X文本到uintptr(字体文件名), uintptr(字体大小), uintptr(字体样式))
	return int(r)
}

// XFont_CreateFromZip 字体_创建从ZIP. 返回炫彩字体句柄.
//
//
//
//
//
// ff:字体_创建从zip
// pZipFileName:zip文件名
// pFileName:字体文件名
// pPassword:zip密码
// fontSize:字体大小
// style:字体样式
func X字体_创建从zip(zip文件名, 字体文件名, zip密码 string, 字体大小 int32, 字体样式 xcc.X字体样式) int {
	r, _, _ := xFont_CreateFromZip.Call(common.X文本到uintptr(zip文件名), common.X文本到uintptr(字体文件名), common.X文本到uintptr(zip密码), uintptr(字体大小), uintptr(字体样式))
	return int(r)
}

// XFont_CreateFromZipMem 字体_创建从内存ZIP. 返回炫彩字体句柄.
//
//
//
//
//
// ff:字体_创建从内存zip
// data:zip数据
// pFileName:字体文件名
// pPassword:zip密码
// fontSize:字体大小
// style:字体样式
func X字体_创建从内存zip(zip数据 []byte, 字体文件名, zip密码 string, 字体大小 int32, 字体样式 xcc.X字体样式) int {
	r, _, _ := xFont_CreateFromZipMem.Call(common.X字节集到uintptr(&zip数据), common.X文本到uintptr(字体文件名), common.X文本到uintptr(zip密码), uintptr(字体大小), uintptr(字体样式))
	return int(r)
}

// XFont_CreateFromMem 字体_创建从内存. 创建炫彩字体从内存. 返回炫彩字体句柄.
//
//
//
// ff:字体_创建从内存
// data:字体文件数据
// fontSize:字体大小
// style:字体样式
func X字体_创建从内存(字体文件数据 []byte, 字体大小 int32, 字体样式 xcc.X字体样式) int {
	r, _, _ := xFont_CreateFromMem.Call(common.X字节集到uintptr(&字体文件数据), uintptr(len(字体文件数据)), uintptr(字体大小), uintptr(字体样式))
	return int(r)
}

// XFont_CreateFromRes 字体_创建从资源. 创建字体从资源. 返回炫彩字体句柄.
//
//
//
//
//
// ff:字体_创建从资源
// id:
// pType:类型
// fontSize:字体大小
// style:字体样式
// hModule:指定模块
func X字体_创建从资源(id int32, 类型 string, 字体大小 int32, 字体样式 xcc.X字体样式, 指定模块 uintptr) int {
	r, _, _ := xFont_CreateFromRes.Call(uintptr(id), common.X文本到uintptr(类型), uintptr(字体大小), uintptr(字体样式), 指定模块)
	return int(r)
}

// XFont_EnableAutoDestroy 字体_启用自动销毁. 是否自动销毁.
//
//
// ff:字体_启用自动销毁
// hFontX:字体句柄
// bEnable:是否启用
func X字体_启用自动销毁(字体句柄 int, 是否启用 bool) {
	xFont_EnableAutoDestroy.Call(uintptr(字体句柄), common.X布尔值到uintptr(是否启用))
}

// XFont_GetFont 字体_取Font. 获取字体. 返回 GDI+ Font指针.
//
// ff:字体_取Font
// hFontX:字体句柄
func X字体_取Font(字体句柄 int) uintptr {
	r, _, _ := xFont_GetFont.Call(uintptr(字体句柄))
	return r
}

// XFont_GetFontInfo 字体_取信息. 获取字体信息.
//
//
// ff:字体_取信息
// hFontX:字体句柄
// pInfo:返回字体
func X字体_取信息(字体句柄 int, 返回字体 *X结构_字体信息) {
	xFont_GetFontInfo.Call(uintptr(字体句柄), uintptr(unsafe.Pointer(返回字体)))
}

// XFont_GetLOGFONTW 字体_取LOGFONTW. 获取字体LOGFONTW.
//
//
//
// ff:字体_取LOGFONTW
// hFontX:字体句柄
// hdc:hdc句柄
// pOut:返回信息
func X字体_取LOGFONTW(字体句柄 int, hdc句柄 uintptr, 返回信息 *X结构_字体属性) bool {
	r, _, _ := xFont_GetLOGFONTW.Call(uintptr(字体句柄), hdc句柄, uintptr(unsafe.Pointer(返回信息)))
	return r != 0
}

// XFont_Destroy 字体_销毁. 强制销毁炫彩字体, 谨慎使用, 建议使用 XFont_Release() 释放.
//
// ff:字体_销毁
// hFontX:字体句柄
func X字体_销毁(字体句柄 int) {
	xFont_Destroy.Call(uintptr(字体句柄))
}

// XFont_AddRef 字体_增加引用计数.
//
// ff:字体_增加引用计数
// hFontX:字体句柄
func X字体_增加引用计数(字体句柄 int) {
	xFont_AddRef.Call(uintptr(字体句柄))
}

// XFont_GetRefCount 字体_取引用计数.
//
// ff:字体_取引用计数
// hFontX:字体句柄
func X字体_取引用计数(字体句柄 int) int32 {
	r, _, _ := xFont_GetRefCount.Call(uintptr(字体句柄))
	return int32(r)
}

// XFont_Release 字体_释放引用计数. 释放引用计数, 当引用计数为0时自动销毁.
//
// ff:字体_释放引用计数
// hFontX:字体句柄
func X字体_释放引用计数(字体句柄 int) {
	xFont_Release.Call(uintptr(字体句柄))
}

// XFont_SetUnderlineEdit 字体_置下划线. 仅供edit字体使用, 因为edit不支持下划线字体, 所以需要单独设置.
//
//
//
// ff:字体_设置下划线
// hFontX:
// bUnderline:启用下划线
// bStrikeout:启用删除线
func X字体_设置下划线(hFontX int, 启用下划线, 启用删除线 bool) {
	xFont_SetUnderlineEdit.Call(uintptr(hFontX), common.X布尔值到uintptr(启用下划线), common.X布尔值到uintptr(启用删除线))
}

// XFont_GetUnderlineEdit 字体_取下划线. 仅供edit字体使用, 因为edit不支持下划线字体, 所以需要单独设置. bUnderline: 返回是否启用下划线. bStrikeout: 返回是否启用删除线.
//
// ff:字体_取下划线
// hFontX:
// bUnderline:启用下划线
// bStrikeout:启用删除线
func X字体_取下划线(hFontX int) (启用下划线, 启用删除线 bool) {
	xFont_GetUnderlineEdit.Call(uintptr(hFontX), uintptr(unsafe.Pointer(&启用下划线)), uintptr(unsafe.Pointer(&启用删除线)))
	return
}
